Workflowを使って複雑な業務Agentアシスタントを構築する
SERVICEME NEXTでは、基礎的な方法で作成されたAgentはシンプルなQ&Aシナリオに適しており、機能は比較的限定的です。より複雑な業務ロジックの処理や多段階の操作を実現するには、**Workflow(ワークフロー)**を通じて高度なAgentを構築し、より豊富な業務ニーズに対応できます。
本章では具体的な例を通じて、Workflowを使った複雑なプロセスの構築方法を紹介します。
シナリオ例:契約内容のセンシティブワード抽出
実際の業務では、契約書のテキストは通常長文で内容も複雑です。人手で一つ一つ照合し、センシティブワードが含まれているかを識別するのは時間と労力がかかり、特にセンシティブワードの数が多い場合は見落としも発生しやすく、正確性の確保が難しくなります。
Workflowの機能を活用することで、ファイルアップロード、内容解析、センシティブワードの識別とマーキングをサポートするスマートAgentを構築し、以下の操作を自動化できます。
- ユーザーがアップロードした契約ファイルを受け取る;
- テキスト内容を自動解析する;
- その中のセンシティブワードを検出・抽出する;
- センシティブワードとその位置を含む結果を返す。
このプロセスにより、ユーザーは手動で確認することなく契約書のセンシティブ情報を迅速に把握でき、審査の効率と正確性を大幅に向上させられます。
✅ ヒント:この種のAgentは特に法務審査、コンテンツレビュー、コンプライアンス管理などのシナリオに適しています。
センシティブワードデータソースの準備
正式にワークフローを構築する前に、センシティブワードのデータを準備する必要があります。本ケースではセンシティブワードはデータベースに保存されているため、Dataモジュールを通じてデータベースをデータソースとして追加し、データ同期を完了させます。
データ準備の前提条件
- センシティブワードデータがデータベース(テーブル名は
SensitiveWords)に書き込まれていること。 - データベースの種類は
SQLServerで、ネットワーク経由でアクセス可能であること。

データソース追加手順
- Dataモジュールに入る
- SERVICEMEプラットフォームを開き、左側ナビゲーションバーの**「Data」**をクリック。
- **「データソース」**を選択し、データソース管理ページに入る。

- データソースを追加
- 右上の**「データソース追加」**ボタンをクリック。
- ポップアップの設定ウィンドウに以下の情報を入力:
- データソース名:例
Sensitive Word - データベースタイプ:
SQLServerを選択 - 接続情報:
host、port、ユーザー名、パスワード、データベース名を含む
- データソース名:例
- **「接続テスト」をクリックし、接続成功を確認後、「確認」**をクリックして追加完了。

- データテーブルを選択
- データソース一覧に戻り、作成したデータソース項目をクリック。
- データベース内の利用可能なテーブルが表示されるので、センシティブワードを含むテーブル(例:
SensitiveWords)にチェックを入れ、**「確認」**をクリックして追加。

- データカタログ同期
- 左側メニューから**「データカタログ」**を選択し、
Sensitive Wordデータソースを見つけてクリック。 - **「同期」**操作を実行し、プラットフォームが最新のデータを取得できるようにする。
- 左側メニューから**「データカタログ」**を選択し、

以上の手順を完了すると、センシティブワードのデータソース設定が完了します。以降のワークフローではノードを通じてこのデータテーブルにアクセスし、契約内容のセンシティブワード抽出と照合を実現します。
ワークフロー方式で「Sensitive Word Extraction」Agentを作成する
- SERVICEME NEXTのホームに入り、左側ナビゲーションバーのAI StudioをクリックしてAgent画面に入る。
- 右上の**「アシスタント作成」をクリックし、「高度な編成作成」**方式を選択。
- 以下の基本情報を入力:
- アシスタント名:
Sensitive Word Extractionと入力 - エージェントアイコン:システム内蔵のアイコンから選択(現在はカスタムアップロード非対応)
- カテゴリ:業務所属カテゴリを選択、例
Legal and Compliance - 説明:例
Sensitive Word Extraction
- アシスタント名:
- 入力完了後、**「作成」**をクリックし、ワークフローAgentを生成。

「Sensitive Word Extraction」Agentの設定
📌 編成前の思考整理
本ワークフローの核心目標は、Agentがユーザーがアップロードした契約ファイルから自動的に存在するセンシティブワードを識別できるようにすることです。そのために、ユーザーに契約ファイルをアップロードしてもらい、その内容を処理可能なテキストに解析します。同時に、既に設定済みのデータベースからセンシティブワードデータを読み込み、モデルを通じて契約内容とセンシティブワードをインテリジェントに照合し、マッチした項目とその位置を特定します。最終的に、モデルが識別結果を出力し、その結果をユーザーに返します。全体の流れはファイル処理、データソース呼び出し、モデル識別、結果出力などの重要なステップを含み、自動化されたテキスト審査業務シナリオに適しています。
📌 ノード設定と接続説明
本例のWorkflowでは、各ノードの入出力は前のノードの結果を参照して設定します。センシティブワード抽出の目的を達成するために、本フローは主に開始ノード、ファイル処理ノード、データソースノード、モデルノード、終了ノードの各ノードを含みます。以下に各ノードの設定と接続方法を順に説明します。
設定手順
- 開始ノードの入力説明
開始ノードはデフォルトで2つの入力を含みます:
USER_INPUT:ユーザーが入力した自然言語の指示、例:「契約書のセンシティブワードをチェックしてください。」USER_FILE:ユーザーがアップロードしたローカルの契約ファイル。
これら2つの入力は後続ノードの参照元として使用され、ファイル処理やモデル識別に利用されます。

- ファイル処理ノードの設定
このノードはユーザーがアップロードした契約ファイルの処理を担当し、テキスト抽出、スライス、ベクトル化処理を行います。
設定手順は以下の通り:
- ファイル処理ノードをキャンバスに追加。
- 開始ノードとファイル処理ノードを線で接続。
- ファイル処理ノードをクリックし、設定画面に入り以下を設定:
- 入力参照:
USER_INPUTを参照に設定、形式は:
Start/USER_INPUT - ファイル参照:「ファイル追加」をクリックし、
USER_FILE(ユーザーがアップロードした契約ファイル)を選択 - TopK設定:適切なTopK(例3〜5)を選択。
- TopKはモデルがテキストベクトルマッチング時に最大で返す文段数を示す。
- 推奨:TopKが低すぎると重要内容を見逃す可能性があり、高すぎるとモデルのフォーカス能力に影響する。
- 入力参照:

- データソースノードの設定
このノードは先に作成したセンシティブワードのデータテーブルを導入し、後続の照合に使用します。
設定手順は以下の通り:
- データソースノードをキャンバスに追加し、開始ノードと接続。
- ノードをクリックし、データソース情報を設定:
- データソースを
Sensitive Wordに選択 - 入力参照設定を
Start/USER_INPUT(ユーザーの入力指示)に設定
- データソースを
このノードの出力がモデルで使用するセンシティブワードリストとなります。

- モデルノードの設定
このノードは本フローの核心処理モジュールであり、契約テキストとセンシティブワードをインテリジェントに照合し、結果を返します。
設定手順は以下の通り:
- モデルノードを追加し、ファイル処理ノードとデータソースノードの両方と接続。
- モデル選択:
gpt-4.1 - ツール選択:本シナリオでは外部ツール呼び出し不要のためスキップ。
- 入力参照:
input:ファイル処理ノードの出力を参照、形式は:
FileHandler/outputparam2:データソースノードの出力を参照、形式は:
DataSource/output
- プロンプト設定:
- システムメッセージ(System Prompt):
Analyze the file in {{input}} and compare it with the sensitive words in {{param2}}. If there are sensitive words in the file, output the sensitive words along with their positions. - ユーザーメッセージ(User Prompt):
Analyze the file in {{input}} and compare it with the sensitive words in {{param2}}. If there are sensitive words in the file, output the sensitive words along with their positions.
- システムメッセージ(System Prompt):
✅ ヒント:システムメッセージはモデルに行動指示を与え、ユーザーメッセージは実際のユーザー入力を模擬します。ここでは両者内容を同じにすることで安定した効果を得られます。

- 出力ノードの設定
このノードはモデルの処理結果を最終ユーザーに返す役割を担います。
設定手順は以下の通り:
- モデルノードと終了ノードを接続。
- 終了ノードをクリックし、入力参照を設定:
- 入力内容:モデルノードの出力を参照、形式は:
Model/output
- 入力内容:モデルノードの出力を参照、形式は:
- 出力内容設定に
{{output}}と記入。
✅ ヒント:最後に
{{output}}のみを記入することでモデルの出力をそのまま保持できます。必要に応じて特定内容の出力指定も可能です。

全体の設定は以下の通りです:
